"""" """
"""
1代表登录，2代表注册，读取Excel，表名为UserInfo
注册：
1、用户名不能存在（提示：用户名已存在）
2、用户名长度6-18位（不符合提示：用户名应为6-18位）
3、密码包含字母和数字（不符合提示：密码必须包含字母和数字）
4、密码长度6-20位（不符合提示：密码长度6-20位）
5、再次确认密码（两次密码一致）
登录：用户名和密码正确（不正确提示：用户名或密码错误）
"""

import openpyxl
import re


# 注册界面
def regPage():
    while True:
        regName = str(input("请输入用户名："))
        dict_value = readExcel()
        if regName in dict_value.keys():
            print("用户已存在")
        else:
            if 6 <= len(regName) <= 18:
                break
            else:
                print("用户名长度6-18位")

    while True:
        regPwd = str(input("请输入密码："))
        isTrue = bool(re.search(r'\d', regPwd) and re.search('[a-zA-Z]', regPwd))

        if 6 <= len(regPwd) <= 20:
            if isTrue == False:
                print("密码必须包含字母和数字")
            else:
                break
        else:
            print("密码长度6-20位")

    while True:
        repeatPwd = str(input("请再次输入密码："))
        if repeatPwd != regPwd:
            print("两次密码不一致")
        else:
            break
# 登录界面
def loginPage():
    while True:
        userName = str(input("请输入用户名："))
        userPwd = str(input("请输入密码："))
        dict_value = readExcel()
        if userName in dict_value.keys():
            if userPwd == dict_value[userName]:
                print("登录成功！登录成功！登录成功！登录成功！登录成功！")
                break
            else:
                print("密码错误")
        else:
            print("用户错误")


# 读取Excel表中数据
def readExcel():
    workbook = openpyxl.load_workbook("F:/Longlsland/Login.xlsx")  # 获取这个路径下的文件
    sheet = workbook['Sheet1']  # 获取Excel文件中的工作表
    """
    cell_value = sheet['A2'].value  # 获取单个值
    column_name = [sheet[f'A{i}'].value for i in range(2, sheet.max_row + 1)]  # 获取整列
    column_pwd = [sheet[f'A{i}'].value for i in range(2, sheet.max_row + 1)]
    """
    dict_value = dict()  # 以键值对形式存放用户名密码，用户名为键密码为值
    for row in range(1, sheet.max_row + 1):
        column_name = sheet[f'A{row}'].value
        column_pwd = sheet[f'B{row}'].value
        dict_value[column_name] = column_pwd

    return dict_value


# 往Excel表中插入数据
def writeExcel(regName, regPwd):
    workbook = openpyxl.load_workbook("F:/Longlsland/Login.xlsx")  # 获取这个路径下的文件
    sheet = workbook['Sheet1']  # 获取Excel文件中的工作表
    new_row = [regName, regPwd]
    sheet.append(new_row)
    workbook.save("F:/Longlsland/Login.xlsx")


if __name__ == '__main__':
    num = int(input("1 代表登录，2 代表注册，请输入数字："))
    if num == 1:
        loginPage()
    elif num == 2:
        regPage()
    else:
        print("访问页面不存在")
